package cn.liontalk.consumer;

import org.springframework.amqp.core.ExchangeTypes;
import org.springframework.amqp.rabbit.annotation.*;
import org.springframework.stereotype.Component;

/**
 * @author: 周哲
 * @package: cn.liontalk.consumer
 * @description: 错误日志消息的消费者
 * @date: 2019/1/10 15:14
 * @version: V1.0
 */
@Component
@RabbitListener(
        bindings = @QueueBinding(
                value = @Queue(value = "${mq.config.error.queue}", autoDelete = "false"),
                exchange = @Exchange(value = "${mq.config.exchange}", type = ExchangeTypes.DIRECT,autoDelete = "false"),
                key = "${mq.config.queue.error.routing.key}"
        )
)
public class ErrorConsumer {
    /**
     *
     @RabbitListener bingdings:绑定队列
     @QueueQueueBinding value:绑定队列名称
                        exchange:配置交换器
     @Queue     value:配置队列名称
                autoDelete:是否是一个可删除的临时队列
     @Exchange  value: 为交换器起一个名称
                type: 指定交换器的类型

     autoDelete 属性
     @Queue: 当所有消费客户端连接断开后，是否自动删除 队列 true：删除 false： 删除

     @Exchange: 当所有绑定的队列都不在使用时，是否自动删除交换器 true：删除 false：不删除
     */

    /**
     * 接收消息的方法,采用消息队列的监听机制
     * @param message
     */
    @RabbitHandler
    public void process(String message) {
        System.out.println("ErrorConsumer.....Receive:" + message);
    }
}
